package luogu;

import java.util.Scanner;

public class A8783 {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int k = sc.nextInt();
        int[][] a = new int[n + 1][m + 1];//矩阵点的值
        int[][] sum = new int[n + 1][m + 1];//确定行的确定列的 列的前缀值
        int[] b = new int[m + 1];//对于给定的行区间，行区间中某列的值
        long ans = 0;

        // 输入矩阵
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m; j++) {
                a[i][j] = sc.nextInt();
            }
        }
        //计算列的前缀和
        //枚举每一列==>再枚举该列的a到b行间
        for (int j = 1; j <= m; j++) {//每列
            for (int i = 1; i <= n; i++) {
                sum[i][j] = sum[i - 1][j] + a[i][j];
            }
        }
        //枚举所有的行区间
        for (int x = 1; x <= n; x++) {
            for (int y = x; y <= n; y++) {
//对于确定的x到y行，获得在这行区间每一列的值，这就是我们构造列前缀和的意义，加快区间搜索
                for (int j = 1; j <= m; j++) {
                    b[j] = sum[y][j] - sum[x - 1][j];
                }
                int i = 1;//左指针
                long total = 0;
                for (int j = 1; j <= m; j++) {
                    //将当前列区间的值加上，如果没有超出k，那么加上新矩形
                    total += b[j];
                    if (total <= k) {
                        //符合条件
                        ans += j - i + 1;//这里的1是指该列本身形成的矩形，j-i是指从i开始到j前一个元素的元素，以每个元素到j形成的矩形,谷新增矩形就等于区间长度
                    } else {
                        while (total > k) {
                            total -= b[i++];
                        }
                        ans += j - i + 1;
                    }
                }
            }
        }
        System.out.println(ans);

    }

}
